package com.hundsun.cprs.yyt.gateway.service.trade;

import com.hundsun.cprs.yyt.gateway.request.*;
import com.hundsun.cprs.yyt.gateway.response.*;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

@ServiceModule
public interface TradeCommonService {

    /**
     * 查询专场列表
     *
     * @param request
     * @return
     */
    @Service(functionId = "319351", desc = "查询专场列表")
    PlateListResponse getPlateList(PlateRequest request);

    /**
     * 查询专场详情
     *
     * @param plateId
     * @return
     */
    @Service(functionId = "319352", desc = "查询专场详情")
    PlateResponse getPlateDetail(@ServiceParam("plate_id") Long plateId);

    /**
     * 查询专场下的商品列表
     *
     * @param request
     * @return
     */
    @Service(functionId = "319353", desc = "查询专场下的商品列表")
    GoodsListResponse getGoodsListByPlate(GoodsRequest request);

    /**
     * 查询全量商品分类信息，以JSON格式返回
     *
     * @return
     */
    @Service(functionId = "319354", desc = "查询全量商品分类信息，以JSON格式返回")
    GoodsClassifyJsonResponse getAllClassifyByJson();

    /**
     * 查询分类下的商品列表
     *
     * @param request
     * @return
     */
    @Service(functionId = "319355", desc = "查询分类下的商品列表")
    GoodsListResponse getGoodsListByClassify(GoodsRequest request);

    /**
     * 查询区下的商品列表
     *
     * @param request
     * @return
     */
    @Service(functionId = "319356", desc = "查询区下的商品列表")
    GoodsListResponse getGoodsListByArea(GoodsRequest request);

    /**
     * 查询商品详情
     *
     * @param request
     * @return
     */
    @Service(functionId = "319357", desc = "查询商品详情")
    GoodsResponse getGoodsDetail(GoodsRequest request);

    @Service(functionId = "319358", desc = "查询会员收货地址信息")
    DiliveryAddressListResponse getDiliveryAddressList(@ServiceParam("user_id") Long userId,@ServiceParam("type") String type);

    @Service(functionId = "319359", desc = "新增收货地址")
    BaseResponse createDiliveryAddress(DiliveryAddressRequest request);

    @Service(functionId = "319360", desc = "修改收货地址")
    BaseResponse modifyDiliveryAddress(DiliveryAddressRequest request);

    @Service(functionId = "319361", desc = "删除收货地址")
    BaseResponse deleteDiliveryAddress(@ServiceParam("user_id") Long userId, @ServiceParam("dilivery_address_id") Long diliveryAddressId);

    @Service(functionId = "319362", desc = "根据键名查找字典表中的键值")
    BussinessParamResponse getBussinessValueByKey(BussinessParamRequest request);

    @Service(functionId = "319363", desc = "判断当前时间是否在交易时间段内")
    OpenFlagResponse isTradingTimePeriod();

    @Service(functionId = "319364", desc = "查询某个商品的成交记录明细")
    TradeMatchDetailListResponse getTradeMatchDetailByGoods(TradeMatchDetailRequest request);

    @Service(functionId = "319365", desc = "快递100订单物流数据查询")
    kuaidi100SynQueryDataResponse synQueryData(kuaidi100SynQueryDataRequest request);

    @Service(functionId = "319368", desc = "查询个人退货审核申请记录")
    ReturnGoodsListResponse queryReturnBackList(ReturnGoodsRequest request);

    @Service(functionId = "319369", desc = "退货记录详情")
    ReturnGoodsResponse queryReturnBackDetail(@ServiceParam("user_id") Long userId, @ServiceParam("return_goods_id") Long returnGoodsId);
}

